home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Freelog 117
/
FreelogNo117-OctobreNovembre2013.iso
/
Programmation
/
jedit
/
jedit5.1.0install.exe
/
{app}
/
modes
/
ada.xml
< prev
next >
Wrap
Extensible Markup Language
|
2013-07-28
|
14KB
|
351 lines
<?xml version="1.0"?>
<!DOCTYPE MODE SYSTEM "xmode.dtd">
<!--
This is a jedit mode file for Ada programming language.
Copyright (C) 2012 Peter C. Chapin (pchapin@sf)
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-->
<!-- TODO: Support based literals as numeric literals: 16#FF#
Support numeric literals with an exponent: 1.0e2, 1e2. -->
<MODE>
<PROPS>
<PROPERTY NAME="lineComment" VALUE="--" />
<PROPERTY NAME="indentNextLines"
VALUE=".*(begin|declare|do|else|elsif|exception|generic|is|loop|private|record|select|tagged|then|with|=>|:=)\s*(--.*)?$"/>
<PROPERTY NAME="unindentThisLine"
VALUE="^\s*end\b.*;"/>
<PROPERTY NAME="unindentNextLines"
VALUE="^\s*end\b.*;"/>
<PROPERTY NAME="electricKeys" VALUE=";"/>
</PROPS>
<RULES IGNORE_CASE="TRUE" HIGHLIGHT_DIGITS="TRUE">
<!-- SPARK annotation comments. -->
<EOL_SPAN TYPE="COMMENT2">--#</EOL_SPAN>
<!-- Normal comments. -->
<EOL_SPAN TYPE="COMMENT1">--</EOL_SPAN>
<SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
<BEGIN>"</BEGIN>
<END>"</END>
</SPAN>
<!-- Operators and Related -->
<SEQ TYPE="OPERATOR">)</SEQ>
<SEQ TYPE="OPERATOR">(</SEQ>
<SEQ TYPE="OPERATOR">..</SEQ>
<SEQ TYPE="OPERATOR">.all</SEQ>
<SEQ TYPE="OPERATOR">:=</SEQ>
<SEQ TYPE="OPERATOR">/=</SEQ>
<SEQ TYPE="OPERATOR">=></SEQ>
<SEQ TYPE="OPERATOR">=</SEQ>
<SEQ TYPE="NULL"><></SEQ>
<SEQ TYPE="LABEL"><<</SEQ>
<SEQ TYPE="LABEL">>></SEQ>
<SEQ TYPE="OPERATOR">>=</SEQ>
<SEQ TYPE="OPERATOR"><=</SEQ>
<SEQ TYPE="OPERATOR">></SEQ>
<SEQ TYPE="OPERATOR"><</SEQ>
<SEQ TYPE="OPERATOR">&</SEQ>
<SEQ TYPE="OPERATOR">+</SEQ>
<SEQ TYPE="OPERATOR">-</SEQ>
<SEQ TYPE="OPERATOR">/</SEQ>
<SEQ TYPE="OPERATOR">**</SEQ>
<SEQ TYPE="OPERATOR">*</SEQ>
<!-- Predefined Attributes -->
<!-- From Section K.2 "Language-Defined Attributes" in the Ada Reference Manual. -->
<SEQ TYPE="KEYWORD3">'access</SEQ>
<SEQ TYPE="KEYWORD3">'address</SEQ>
<SEQ TYPE="KEYWORD3">'adjacent</SEQ>
<SEQ TYPE="KEYWORD3">'aft</SEQ>
<SEQ TYPE="KEYWORD3">'alignment</SEQ>
<SEQ TYPE="KEYWORD3">'base</SEQ>
<SEQ TYPE="KEYWORD3">'bit_order</SEQ>
<SEQ TYPE="KEYWORD3">'body_version</SEQ>
<SEQ TYPE="KEYWORD3">'callable</SEQ>
<SEQ TYPE="KEYWORD3">'caller</SEQ>
<SEQ TYPE="KEYWORD3">'ceiling</SEQ>
<SEQ TYPE="KEYWORD3">'class</SEQ>
<SEQ TYPE="KEYWORD3">'component_size</SEQ>
<SEQ TYPE="KEYWORD3">'compose</SEQ>
<SEQ TYPE="KEYWORD3">'constrained</SEQ>
<SEQ TYPE="KEYWORD3">'copy_size</SEQ>
<SEQ TYPE="KEYWORD3">'count</SEQ>
<SEQ TYPE="KEYWORD3">'definite</SEQ>
<SEQ TYPE="KEYWORD3">'delta</SEQ>
<SEQ TYPE="KEYWORD3">'denorm</SEQ>
<SEQ TYPE="KEYWORD3">'digits</SEQ>
<SEQ TYPE="KEYWORD3">'exponent</SEQ>
<SEQ TYPE="KEYWORD3">'external_tag</SEQ>
<SEQ TYPE="KEYWORD3">'first</SEQ>
<SEQ TYPE="KEYWORD3">'first_bit</SEQ>
<SEQ TYPE="KEYWORD3">'floor</SEQ>
<SEQ TYPE="KEYWORD3">'fore</SEQ>
<SEQ TYPE="KEYWORD3">'fraction</SEQ>
<SEQ TYPE="KEYWORD3">'has_same_storage</SEQ>
<SEQ TYPE="KEYWORD3">'identity</SEQ>
<SEQ TYPE="KEYWORD3">'image</SEQ>
<SEQ TYPE="KEYWORD3">'class'input</SEQ>
<SEQ TYPE="KEYWORD3">'input</SEQ>
<SEQ TYPE="KEYWORD3">'last</SEQ>
<SEQ TYPE="KEYWORD3">'last_bit</SEQ>
<SEQ TYPE="KEYWORD3">'leading_part</SEQ>
<SEQ TYPE="KEYWORD3">'length</SEQ>
<SEQ TYPE="KEYWORD3">'machine</SEQ>
<SEQ TYPE="KEYWORD3">'machine_emax</SEQ>
<SEQ TYPE="KEYWORD3">'machine_emin</SEQ>
<SEQ TYPE="KEYWORD3">'machine_mantissa</SEQ>
<SEQ TYPE="KEYWORD3">'machine_overflows</SEQ>
<SEQ TYPE="KEYWORD3">'machine_radix</SEQ>
<SEQ TYPE="KEYWORD3">'machine_rounding</SEQ>
<SEQ TYPE="KEYWORD3">'machine_rounds</SEQ>
<SEQ TYPE="KEYWORD3">'max</SEQ>
<SEQ TYPE="KEYWORD3">'max_alignment_for_allocation</SEQ>
<SEQ TYPE="KEYWORD3">'max_size_in_storage_elements</SEQ>
<SEQ TYPE="KEYWORD3">'min</SEQ>
<SEQ TYPE="KEYWORD3">'mod</SEQ>
<SEQ TYPE="KEYWORD3">'model</SEQ>
<SEQ TYPE="KEYWORD3">'model_emin</SEQ>
<SEQ TYPE="KEYWORD3">'model_epsilon</SEQ>
<SEQ TYPE="KEYWORD3">'model_mantissa</SEQ>
<SEQ TYPE="KEYWORD3">'model_small</SEQ>
<SEQ TYPE="KEYWORD3">'modulus</SEQ>
<SEQ TYPE="KEYWORD3">'old</SEQ>
<SEQ TYPE="KEYWORD3">'class'output</SEQ>
<SEQ TYPE="KEYWORD3">'output</SEQ>
<SEQ TYPE="KEYWORD3">'overlaps_storage</SEQ>
<SEQ TYPE="KEYWORD3">'partition_id</SEQ>
<SEQ TYPE="KEYWORD3">'pos</SEQ>
<SEQ TYPE="KEYWORD3">'position</SEQ>
<SEQ TYPE="KEYWORD3">'pred</SEQ>
<SEQ TYPE="KEYWORD3">'priority</SEQ>
<SEQ TYPE="KEYWORD3">'range</SEQ>
<SEQ TYPE="KEYWORD3">'class'read</SEQ>
<SEQ TYPE="KEYWORD3">'read</SEQ>
<SEQ TYPE="KEYWORD3">'remainder</SEQ>
<SEQ TYPE="KEYWORD3">'result</SEQ>
<SEQ TYPE="KEYWORD3">'round</SEQ>
<SEQ TYPE="KEYWORD3">'rounding</SEQ>
<SEQ TYPE="KEYWORD3">'safe_first</SEQ>
<SEQ TYPE="KEYWORD3">'safe_last</SEQ>
<SEQ TYPE="KEYWORD3">'scale</SEQ>
<SEQ TYPE="KEYWORD3">'scaling</SEQ>
<SEQ TYPE="KEYWORD3">'signed_zeros</SEQ>
<SEQ TYPE="KEYWORD3">'size</SEQ>
<SEQ TYPE="KEYWORD3">'small</SEQ>
<SEQ TYPE="KEYWORD3">'storage_pool</SEQ>
<SEQ TYPE="KEYWORD3">'storage_size</SEQ>
<SEQ TYPE="KEYWORD3">'stream_size</SEQ>
<SEQ TYPE="KEYWORD3">'succ</SEQ>
<SEQ TYPE="KEYWORD3">'tag</SEQ>
<SEQ TYPE="KEYWORD3">'terminated</SEQ>
<SEQ TYPE="KEYWORD3">'truncation</SEQ>
<SEQ TYPE="KEYWORD3">'unbiased_rounding</SEQ>
<SEQ TYPE="KEYWORD3">'unchecked_access</SEQ>
<SEQ TYPE="KEYWORD3">'val</SEQ>
<SEQ TYPE="KEYWORD3">'valid</SEQ>
<SEQ TYPE="KEYWORD3">'value</SEQ>
<SEQ TYPE="KEYWORD3">'version</SEQ>
<SEQ TYPE="KEYWORD3">'wide_image</SEQ>
<SEQ TYPE="KEYWORD3">'wide_value</SEQ>
<SEQ TYPE="KEYWORD3">'wide_width</SEQ>
<SEQ TYPE="KEYWORD3">'width</SEQ>
<SEQ TYPE="KEYWORD3">'wide_wide_image</SEQ>
<SEQ TYPE="KEYWORD3">'wide_wide_value</SEQ>
<SEQ TYPE="KEYWORD3">'wide_wide_width</SEQ>
<SEQ TYPE="KEYWORD3">'class'write</SEQ>
<SEQ TYPE="KEYWORD3">'write</SEQ>
<!-- Predefined Pragmas -->
<!-- From Annex L of the Ada Reference Manual. -->
<!-- One problem with this definition is that it requires exactly one
space between the pragma keyword and the name of the pragma. -->
<SEQ TYPE="KEYWORD3">pragma all_calls_remote</SEQ>
<SEQ TYPE="KEYWORD3">pragma assert</SEQ>
<SEQ TYPE="KEYWORD3">pragma assertion_policy</SEQ>
<SEQ TYPE="KEYWORD3">pragma asynchronous</SEQ>
<SEQ TYPE="KEYWORD3">pragma atomic</SEQ>
<SEQ TYPE="KEYWORD3">pragma atomic_components</SEQ>
<SEQ TYPE="KEYWORD3">pragma attach_handler</SEQ>
<SEQ TYPE="KEYWORD3">pragma controlled</SEQ>
<SEQ TYPE="KEYWORD3">pragma convention</SEQ>
<SEQ TYPE="KEYWORD3">pragma cpu</SEQ>
<SEQ TYPE="KEYWORD3">pragma default_storage_pool</SEQ>
<SEQ TYPE="KEYWORD3">pragma detect_blocking</SEQ>
<SEQ TYPE="KEYWORD3">pragma discard_names</SEQ>
<SEQ TYPE="KEYWORD3">pragma dispatching_domain</SEQ>
<SEQ TYPE="KEYWORD3">pragma elaborate</SEQ>
<SEQ TYPE="KEYWORD3">pragma elaborate_all</SEQ>
<SEQ TYPE="KEYWORD3">pragma elaborate_body</SEQ>
<SEQ TYPE="KEYWORD3">pragma export</SEQ>
<SEQ TYPE="KEYWORD3">pragma import</SEQ>
<SEQ TYPE="KEYWORD3">pragma independent</SEQ>
<SEQ TYPE="KEYWORD3">pragam independent_components</SEQ>
<SEQ TYPE="KEYWORD3">pragma inline</SEQ>
<SEQ TYPE="KEYWORD3">pragma inspection_point</SEQ>
<SEQ TYPE="KEYWORD3">pragma interrupt_handler</SEQ>
<SEQ TYPE="KEYWORD3">pragma interrupt_priority</SEQ>
<SEQ TYPE="KEYWORD3">pragma linker_options</SEQ>
<SEQ TYPE="KEYWORD3">pragma list</SEQ>
<SEQ TYPE="KEYWORD3">pragma locking_policy</SEQ>
<SEQ TYPE="KEYWORD3">pragma no_return</SEQ>
<SEQ TYPE="KEYWORD3">pragma normalize_scalars</SEQ>
<SEQ TYPE="KEYWORD3">pragma optimize</SEQ>
<SEQ TYPE="KEYWORD3">pragma pack</SEQ>
<SEQ TYPE="KEYWORD3">pragma page</SEQ>
<SEQ TYPE="KEYWORD3">pragma partition_elaboration_policy</SEQ>
<SEQ TYPE="KEYWORD3">pragma preelaborate_initialization</SEQ>
<SEQ TYPE="KEYWORD3">pragma preelaborate</SEQ>
<SEQ TYPE="KEYWORD3">pragma priority</SEQ>
<SEQ TYPE="KEYWORD3">pragma priority_specific_dispatching</SEQ>
<SEQ TYPE="KEYWORD3">pragma profile</SEQ>
<SEQ TYPE="KEYWORD3">pragma pure</SEQ>
<SEQ TYPE="KEYWORD3">pragma queuing_policy</SEQ>
<SEQ TYPE="KEYWORD3">pragma relative_deadline</SEQ>
<SEQ TYPE="KEYWORD3">pragma remote_call_interface</SEQ>
<SEQ TYPE="KEYWORD3">pragma remote_types</SEQ>
<SEQ TYPE="KEYWORD3">pragma restrictions</SEQ>
<SEQ TYPE="KEYWORD3">pragma reviewable</SEQ>
<SEQ TYPE="KEYWORD3">pragma shared_passive</SEQ>
<SEQ TYPE="KEYWORD3">pragma storage_size</SEQ>
<SEQ TYPE="KEYWORD3">pragma suppress</SEQ>
<SEQ TYPE="KEYWORD3">pragma task_dispatching_policy</SEQ>
<SEQ TYPE="KEYWORD3">pragma unchecked_union</SEQ>
<SEQ TYPE="KEYWORD3">pragma unsuppress</SEQ>
<SEQ TYPE="KEYWORD3">pragma volatile</SEQ>
<SEQ TYPE="KEYWORD3">pragma volatile_components</SEQ>
<SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
<BEGIN>'</BEGIN>
<END>'</END>
</SPAN>
<KEYWORDS>
<!-- Reserved words -->
<!-- The first three are special. Coloring them differently makes it
easier to locate subprograms in the file. -->
<KEYWORD1>entry</KEYWORD1>
<KEYWORD1>function</KEYWORD1>
<KEYWORD1>procedure</KEYWORD1>
<KEYWORD2>abort</KEYWORD2>
<KEYWORD2>abs</KEYWORD2>
<KEYWORD2>abstract</KEYWORD2>
<KEYWORD2>accept</KEYWORD2>
<KEYWORD2>access</KEYWORD2>
<KEYWORD2>aliased</KEYWORD2>
<KEYWORD2>all</KEYWORD2>
<KEYWORD2>and</KEYWORD2>
<KEYWORD2>array</KEYWORD2>
<KEYWORD2>at</KEYWORD2>
<KEYWORD2>begin</KEYWORD2>
<KEYWORD2>body</KEYWORD2>
<KEYWORD2>case</KEYWORD2>
<KEYWORD2>constant</KEYWORD2>
<KEYWORD2>declare</KEYWORD2>
<KEYWORD2>delay</KEYWORD2>
<KEYWORD2>delta</KEYWORD2>
<KEYWORD2>digits</KEYWORD2>
<KEYWORD2>do</KEYWORD2>
<KEYWORD2>else</KEYWORD2>
<KEYWORD2>elsif</KEYWORD2>
<KEYWORD2>end</KEYWORD2>
<KEYWORD2>exception</KEYWORD2>
<KEYWORD2>exit</KEYWORD2>
<KEYWORD2>for</KEYWORD2>
<KEYWORD2>generic</KEYWORD2>
<KEYWORD2>goto</KEYWORD2>
<KEYWORD2>if</KEYWORD2>
<KEYWORD2>in</KEYWORD2>
<KEYWORD2>interface</KEYWORD2>
<KEYWORD2>is</KEYWORD2>
<KEYWORD2>limited</KEYWORD2>
<KEYWORD2>loop</KEYWORD2>
<KEYWORD2>mod</KEYWORD2>
<KEYWORD2>new</KEYWORD2>
<KEYWORD2>not</KEYWORD2>
<KEYWORD2>null</KEYWORD2> <!-- This is also used as an access value. -->
<KEYWORD2>of</KEYWORD2>
<KEYWORD2>or</KEYWORD2>
<KEYWORD2>others</KEYWORD2>
<KEYWORD2>out</KEYWORD2>
<KEYWORD2>overriding</KEYWORD2>
<KEYWORD2>package</KEYWORD2>
<KEYWORD3>pragma</KEYWORD3> <!-- Special case -->
<KEYWORD2>private</KEYWORD2>
<KEYWORD2>protected</KEYWORD2>
<KEYWORD2>raise</KEYWORD2>
<KEYWORD2>range</KEYWORD2>
<KEYWORD2>record</KEYWORD2>
<KEYWORD2>rem</KEYWORD2>
<KEYWORD2>renames</KEYWORD2>
<KEYWORD2>requeue</KEYWORD2>
<KEYWORD2>return</KEYWORD2>
<KEYWORD2>reverse</KEYWORD2>
<KEYWORD2>select</KEYWORD2>
<KEYWORD2>separate</KEYWORD2>
<KEYWORD2>some</KEYWORD2>
<KEYWORD2>subtype</KEYWORD2>
<KEYWORD2>synchronized</KEYWORD2>
<KEYWORD2>tagged</KEYWORD2>
<KEYWORD2>task</KEYWORD2>
<KEYWORD2>terminate</KEYWORD2>
<KEYWORD2>then</KEYWORD2>
<KEYWORD2>type</KEYWORD2>
<KEYWORD2>until</KEYWORD2>
<KEYWORD2>use</KEYWORD2>
<KEYWORD2>when</KEYWORD2>
<KEYWORD2>while</KEYWORD2>
<KEYWORD2>with</KEYWORD2>
<KEYWORD2>xor</KEYWORD2>
<!-- Literals -->
<LITERAL1>false</LITERAL1>
<LITERAL1>true</LITERAL1>
<!-- Pre-defined types (in package Standard). -->
<LITERAL2>address</LITERAL2>
<LITERAL2>boolean</LITERAL2>
<LITERAL2>character</LITERAL2>
<LITERAL2>duration</LITERAL2>
<LITERAL2>float</LITERAL2>
<LITERAL2>integer</LITERAL2>
<LITERAL2>latin_1</LITERAL2>
<LITERAL2>natural</LITERAL2>
<LITERAL2>positive</LITERAL2>
<LITERAL2>string</LITERAL2>
<LITERAL2>time</LITERAL2>
<LITERAL2>wide_character</LITERAL2>
<LITERAL2>wide_wide_character</LITERAL2>
<LITERAL2>wide_string</LITERAL2>
<LITERAL2>wide_wide_string</LITERAL2>
<!-- Pre-defined exceptions (in package Standard). -->
<LITERAL2>constraint_error</LITERAL2>
<LITERAL2>program_error</LITERAL2>
<LITERAL2>storage_error</LITERAL2>
<LITERAL2>tasking_error</LITERAL2>
</KEYWORDS>
</RULES>
</MODE>